package com.cci.kangdao.dao;

import com.cci.kangdao.dao.model.*;
import org.apache.ibatis.annotations.Param;
import org.mybatis.spring.annotation.MapperScan;

import java.util.List;

/**
 *邀请活动用户记录表
 */
@MapperScan
public interface InviteDao {


	/**
	 *  获取所有活动列表
	 * @param
	 * @return
	 */
	List<ActivityT> getActivityList();

	/**
	 *  根据邀请码获取用户及活动类型
	 * @param
	 * @return
	 */
	InviteCodeT getInviteCode(@Param("inviteCode") String inviteCode);

	/**
	 *  根据用户及活动类型获取邀请码
	 * @param
	 * @return
	 */
	String getUserId(@Param("userId") Long userId,@Param("activityType") Integer activityType);

	/**
	 *  获取活动表
	 * @param activityCode
	 * @return
	 */
	ActivityT getActivity(@Param("activityCode") String activityCode);

	/**
	 *  活动白名单
	 * @param userPhone
	 * @return
	 */
	int activityWhite(@Param("activityType") String activityType,@Param("userPhone") String userPhone);


	/**
	 *  拉新中奖次数
	 * @param phone
	 * @return
	 */
	int winLaxinCount(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  中奖次数
	 * @param phone
	 * @return
	 */
	int winCount(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  根据用户手机号查询 邀请用户信息
	 * @param phone
	 * @return
	 */
	InviteUserRecordT getByUserPhone(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);


	/**
	 *  新增 邀请用户信息
	 * @param record
	 * @return
	 */
	int insert(InviteUserRecordT record);

	/**
	 *  修改 邀请用户信息
	 * @param record
	 * @return
	 */
	int updateById(InviteUserRecordT record);

	/**
	 *  根据手机号查询 邀请用户信息
	 * @param phone
	 * @return
	 */
	int getInviteUserCount(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  根据手机号查询 邀请用户信息id
	 * @param phone
	 * @return
	 */
	Long getInviteUserId(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  新增 邀请用户关系表
	 * @param record
	 * @return
	 */
	int insertInvite(InviteUserInfoT record);

	/**
	 *  修改 邀请用户关系表
	 * @param inviteState
	 * @return
	 */
	int updateInvite(@Param("inviteState") Integer inviteState,@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  根据手机号查询 绑车
	 * @param phone
	 * @return
	 */
	int getBindCount(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  根据手机号查询 绑车
	 * @param phone
	 * @return
	 */
	InviteBindUserT getBindByPhone(@Param("phone") String phone,@Param("userId") Long userId,@Param("userName") String userName);

	/**
	 *  根据esn查询 绑车
	 * @param esn
	 * @return
	 */
	int getEsnCount(@Param("esn") String esn);

	/**
	 *  新增 拉新用户绑车记录表
	 * @param record
	 * @return
	 */
	int insertBind(InviteBindUserT record);

	/**
	 *  修改 拉新用户绑车记录表
	 * @param record
	 * @return
	 */
	int updateBind(InviteBindUserT record);

}
